package org.ccay.manage.enumerable.service;

import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.QueryParam;

import org.ccay.core.exception.ApplicationException;
import org.ccay.manage.enumerable.vo.EnumItemVO;

@Path("/itemquery")
@Produces("application/json")
public interface IEnumsQueryService { 
	/**
	 * 根据类别和项编码查找项
	 * @param type
	 * @param itemCode
	 * @param language 如果不传则使用默认值（注意不是用户当前语言）
	 * @return 匹配的项或空
	 */
	@GET
	@Path("/single/{type}/{itemCode}/{language}")
	public EnumItemVO findItem(
			@PathParam("type") String type,
			@PathParam("itemCode") String itemCode, 
			@PathParam("language") String language)
					throws ApplicationException;
	
	/**
	 * 根据类别编码获取ItemList
	 * @param type
	 * @param language 如果不传则使用默认值（注意不是用户当前语言）
	 * @return type下的所有项，如果没有则返回空集合
	 * @throws ApplicationException
	 */
	@GET
	@Path("/list/{type}/{language}")
	public List<EnumItemVO> findItemListByType(
			@PathParam("type")String type,
			@PathParam("language")String language) 
					throws ApplicationException;
	
	/**
	 * 根据类别编码获取ItemList
	 */
	@GET
	@Path("/list")
	public List<EnumItemVO> findItemsByType(
			@QueryParam("type")String type,
			@QueryParam("language")String language) 
					throws ApplicationException;
}
